package de.general;

import javax.swing.JOptionPane;


public class G1_Cuadrados {

	public static void main(String[] args) {

		String valor = JOptionPane
				.showInputDialog("Introduzca el numero de niveles:");
		int nivel = Integer.parseInt(valor);
		cuadrado(nivel);
		System.out.println();
		cuadradoVacio(nivel);
		System.out.println();
		medioTrianguloDerecho(nivel);
		System.out.println();
		medioTrianguloReverso(nivel);
		System.out.println();
		rombo(nivel);
		System.out.println();
		abeto(nivel);

	}// end of main

	// Cuadrado
	static void cuadrado(int nivel) {
		System.out.println("Cuadrado con espacio");
		System.out.println("--------------------");
		for (int i = 0; i < nivel; i++) {
			for (int j = 0; j < nivel; j++) {
				System.out.print("*" + " ");
			}
			System.out.println();
		}
	}

	// cuadradoVacio
	static void cuadradoVacio(int nivel) {
		System.out.println("Cuadrado Vacio");
		System.out.println("--------------------");
		for (int i = 1; i <= nivel; i++) {
			for (int j = 1; j <= nivel; j++) {
				if (j == 1 || j == nivel || i == 1 || i == nivel) {
					System.out.print("* ");
				} else {
					System.out.print("  ");
				}
			}
			System.out.println();
		}
	}

	// Triangulo

	// Medio Triangulo derecho

	static void medioTrianguloDerecho(int nivel) {
		System.out.println("Medio Triangulo Derecho");
		System.out.println("--------------------");
		String asterisco = "";
		for (int i = 1; i <= nivel; i++) {
			asterisco += "* ";
			System.out.println(asterisco);
		}
	}

	// Medio Triangulo reverso
	static void medioTrianguloReverso(int nivel) {
		System.out.println("Medio Triangulo Reverso");
		System.out.println("--------------------");
		String dibujo;
		int tamanio = nivel;
		for (int i = 0; i < tamanio; i++) {
			dibujo = "";
			for (int j = 0; j < nivel; j++) {
				dibujo += "* ";
			}
			System.out.println(dibujo);
			nivel--;
		}
	}

	// Rombo
	static void rombo(int nivel) {
		System.out.println("\n\nRombo");
		System.out.println("------\n");
		for (int i = 1; i <= (nivel / 2) + 1; i++) {
			for (int j = 0; j < i; j++) {
				System.out.print("*");
			}
			System.out.print("\n");
		}
		for (int i = (nivel / 2); i > 0; i--) {
			for (int j = 0; j < i; j++) {
				System.out.print("*");
			}
			System.out.print("\n");
		}
	}

	// Abeto
	static void abeto(int nivel) {
		System.out.println("\n\nAbeto");
		System.out.println("------\n");
		int contador = 1;
		for (int i = 1; i <= nivel; i++) {
			contador++;
			for (int j = 1; j <= contador; j++) {
				for (int k = 0; k < j; k++) {
					System.out.print("*");
				}
				System.out.print("\n");
			}
		}
		System.out.println("**");
		System.out.println("**");
	}
}// end of class
